1. Field of the Invention
The invention relates to a method and system for computer software development and distribution. More specifically, the invention relates to a method and system for software development and distribution of software programs in multiple languages.
2. Description of the Related Art
Software programs generally are created and marketed for world-wide distribution. Programs having documentation and a user interface expressed in a single language generally have a limited appeal in many countries of the world. To achieve a world-wide appeal, software is translated to multiple different languages.
Distribution of a software program in multiple languages is not a simple task. Handling of software packages in multiple language versions is a difficult software management issue involving translation of text strings in the software program and then maintaining and shipping several versions of the program. Each version of the program supports a different foreign language.
Conventionally, multiple versions of a program are supported by translating the text strings from each foreign language version of the program from the strings of the native language version. Following translation, the different software versions are supported independently. However, the support of multiple software versions raises the chance for errors to be introduced into the software, thereby complicating software development and support.
A major problem of a software development and distribution system that supports multiple language versions of a program is that the separate language versions are not portable between users. Thus a single language version of a program has limited usefulness when the program is used by multiple persons, for example in an office environment, who speak different languages.
Various techniques have been employed to manage the support of multiple languages in a software program. The most prevalent technique is to edit the source code from the native language software version and translate each text message into a foreign language counterpart. Another method is to create a predefined message token and insert the token into the source code at a suitable position. Message tokens are replaced at a later time. Each of these techniques has weaknesses. When the source code is edited, inadvertent code changes may occur between the separate software versions, reducing software reliability and possibly causing nonuniform operation among the program versions. The usage of reference tokens and a table of text entries that corresponds to the tokens creates the possibility of the ordering of the tokens and table to become nonaligned so that an inappropriate message may be expressed by the program.
Software management of multiple language versions is further complicated when modules are developed by a source external to a software distributor. In many cases, an external source is a vendor that can only supply a module in the native language. Many such vendors supply only object or executable code so that no source code is available for translating into multiple languages.